#include<iostream>
#include<cstring>
#define maxn 100010
using namespace std;
int f[maxn][20];
int log_2[maxn];
int main(){
    int m,n;
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        cin>>f[i][0];
    }
    for(int j=1;(1<<j)<=m;j++){
        for(int i=1;i<=m-(1<<j)+1;i++){
            f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
        }
    }
    for(int i=2;i<=m;i++){
        log_2[i]=log_2[i>>1]+1;
    }   
    for(int i=1;i<=n;i++){
        int x,y;
        cin>>x>>y;
        int c=y-x+1;
        cout<<min(f[x][log_2[c]],f[y-(1<<log_2[c])+1][log_2[c]])<<" ";
    }
    return 0;
}